1. Field of the Invention
The present invention relates generally to the field of software systems, and more particularly, to enabling a software application adapted to communicate using a first communication scheme to be changed to communicate using a second communication scheme without extensive revisions to the software application programming code.
2. Description of the Related Art
Complex software systems are pervasive in today's technically-advanced computing environments. Many software systems are comprised of a number of application programs, also referred to as applications, that are distributed among different computer systems and communicate via a network. These application programs often reside on and are executed by their own host computers. The host computers are typically interconnected so that the application programs can communicate with one another over the network.
To simplify software development and system maintenance, applications within a given software system typically are written in the same programming languages and communicate using a common protocol. As used herein, the term “protocol” is used to characterize the handshaking and forming of connections for two applications to communicate with each other. Examples of protocols are Internet Protocol (IP), Internet Inter-ORB protocol (IIOP) and user datagram protocol (UDP). The term “language” is used to characterize the encoding of data into a particular format before sending the data across a communication channel according to a particular protocol. An example of a language is Java, which can format data as Java objects. The term “communication scheme,” as used herein, refers to either a protocol, a language, or a combination of a language and a protocol that is an application to communicate. An example of a communication scheme is Common Object Request Broker Architecture (CORBA), which encodes data as CORBA objects and transmits the CORBA objects using IIOP.
In most software systems, each application is written to include communication scheme-specific programming code to perform communication tasks. To change the communication scheme with which a given application communicates typically requires extensive revisions to the software application programming code. When an entire software system with numerous application programs is to be changed to use another communication scheme, in some situations it may be less expensive to rewrite the software system itself rather than to remove and replace the communication scheme-specific code in each of the application programs.
What is needed is a communication infrastructure that applications programs can use to handle communication scheme-specific tasks. The communication infrastructure should enable individual application programs using the infrastructure to be written independently of the underlying communication scheme, without the need for code within the application to handle the communication scheme. Ideally, the solution would provide the ability to develop and enhance software systems that support multiple communication schemes, without the need to change the core application program code for each application that is part of the software system.